package club.emergency.wecaht.wechat_api;

import club.emergency.wechat.model.wechat_api.UserInfo;
import club.emergency.wechat.model.wechat_api.UserInfoSimple;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * Create with IntelliJ IDEA
 * Project Name: wechat
 * Package Name: club.emergency.wecaht.wechat_api
 * Date: 2018/11/5
 *
 * @author: 快乐的小菌菌
 * Description: 微信公众号基本接口定义
 */
public interface WechatApi {

    /**
     * 根据code获取openId
     *
     * @param code 获取用户信息授权code
     * @return 以字符串形式返回
     */
    @PostMapping("/wechat-api-provider/getOpenIdByCode")
    String getOpenIdByCode(@RequestParam("code") String code);

    /**
     * 上传图文消息内的图片获取URL
     *
     * @param fileName 文件名
     * @param bytes    字节数组
     * @return 以字符串形式返回
     */
    @PostMapping("/wechat-api-provider/uploadImageReturnUrl")
    String uploadImageReturnUrl(@RequestParam("fileName") String fileName, @RequestBody byte[] bytes);

    /**
     * 获取关注的用户OpenId列表
     *
     * @return 以字符串形式返回
     */
    @PostMapping("/wechat-api-provider/getUserOpenIdList")
    String getUserOpenIdList();

    /**
     * 根据OpenId获取人员详细信息
     *
     * @param openId 微信openId
     * @return 以字符串形式返回
     */
    @PostMapping("/wechat-api-provider/getUserInfoByOpenId")
    String getUserInfoByOpenId(@RequestParam("openId") String openId);

    /**
     * 批量获取用户基本信息
     * 注：该接口供其他服务调用
     *
     * @param userInfoSimple 构建用户openId列表
     * @return 以字符串形式返回
     */
    @PostMapping("/wechat-api-provider/getUserList")
    List<UserInfo> getUserInfoList(@RequestBody UserInfoSimple userInfoSimple);
}
